﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PojProject.Models;
using PojProject.Pojs;
using System.Diagnostics;
using PojProject.Others;

namespace PojProject
{
    class Program
    {

        static void Main(string[] args)
        {
            Dijkstra();

            
            Console.ReadLine();
        }

        static void TestPoj1753()
        {
            ChessType[,] chessMapping = new ChessType[4, 4];
            chessMapping[1, 1] = ChessType.BlackChess;
            chessMapping[3, 3] = ChessType.BlackChess;
            Poj1753 poj1753 = new Poj1753(chessMapping);

            var v = poj1753.Play(ChessType.BlackChess);
        }

        static void TestPoj2965()
        {
            ToggleButton[,] btnMapping = new ToggleButton[4, 4];
            btnMapping[0, 1] = ToggleButton.Closed;
            btnMapping[3, 1] = ToggleButton.Closed;

            Poj2965 poj2965 = new Poj2965(btnMapping);
            var v = poj2965.Play(ToggleButton.Opened);

            var vv = v.Select(x => poj2965.MappingIndexToRowCol(x));
        }

        static void TestPoj1328()
        {
            List<Point> isLandLocations = new List<Point>()
            {
                new Point(){X = 3, Y = 2 },
                new Point(){X= 1, Y = 2 },
                new Point(){X= -3, Y = 1 },
                new Point(){X= 2, Y = 1 },
                new Point(){X= 1, Y = 2 },
                new Point(){X= 0, Y = 2 },
                new Point(){X= 0, Y = 0 },
            };

            Poj1328 poj1328 = new Poj1328(isLandLocations, 2);
            var v = poj1328.Play();
        }

        static void TestPoj2109()
        {
            Poj2109 poj2109 = new Poj2109(7, 4357186184021382204544d);

            var v = poj2109.Play();
        }

        static void TestPoj1068()
        {
            //Poj1068 poj1068 = new Poj1068(new int[] { 4, 6, 6, 6, 6, 8, 9, 9, 9 });

            //var v = poj1068.Play();

            ////4 5 6 6 6 6
          

            Poj1068 poj1068_2 = new Poj1068(new int[] { 4, 5, 6, 6, 6, 6 });

            var vv = poj1068_2.Play();
        }

        static void Dijkstra()
        {

           var  edges = new List<Edge>();
            edges.Add(new Edge { StartNodeId = 1, EndNodeId = 2, WeightValue = 10 });
            edges.Add(new Edge { StartNodeId = 1, EndNodeId = 4, WeightValue = 30 });
            edges.Add(new Edge { StartNodeId = 1, EndNodeId = 5, WeightValue = 100 });
            edges.Add(new Edge { StartNodeId = 2, EndNodeId = 3, WeightValue = 50 });
            edges.Add(new Edge { StartNodeId = 3, EndNodeId = 5, WeightValue = 10 });
            edges.Add(new Edge { StartNodeId = 4, EndNodeId = 3, WeightValue = 20 });
            edges.Add(new Edge { StartNodeId = 4, EndNodeId = 5, WeightValue = 60 });
            Dijkstra dijkstra = new Dijkstra(edges);

           var v=   dijkstra.Play(3);
        }
    }
}
